
// 工具类
const config = require('./config.js');
//基地址
const BASE_URL = config.host

function request(obj) {
	const that = this
	const token = uni.getStorageSync('token')
	// 是否显示加载中
	if(obj.isLoading){
		uni.showLoading({
			title:'加载中...'
		})
	}
	// 需否需要登录
	if(obj.isLogin){
		if(token){
			obj.data['token'] = token
		}else{
			// token 不存在则清空所有信息返回首页 可根据需要修该跳转页面
			uni.removeStorageSync('token')
			uni.removeStorageSync('userInfo')
			uni.redirectTo({
				url:'/pages/loginBtn/loginBtn'
			})
		}
	}
	return new Promise((resolve, reject) => {
		const HOST = BASE_URL
		var method = obj.method || "POST";
		var url = HOST + obj.url || ""; 
		var data = obj.data || {}; 
		var header = obj.header || {
		    'Content-Type': obj.contentType || 'application/json',
			
		}; 
		
		var success = obj.success; // 成功回调函数
		var fail = obj.fail; //表示失败后，要执行的回调函数
		uni.request({
			url: url,
			data: data,
	        method: method,
			header: header,
			success: ((res) => {
				 uni.hideLoading()
				 // console.log(888,res)
			    if (res.data.code == 200) {
					resolve(res.data)
			    }else if(res.data.code == 401){
					uni.removeStorageSync('token')
					uni.removeStorageSync('userInfo')
					uni.showToast({
						title: '用户信息已过期,请重新登录' || res.data.message,
						
						icon:'none',
						success: () => {
							uni.switchTab({
								url:'/pages/index/index'
							})
							// uni.switchTab({
							// 	url:'/pages/loginBtn/loginBtn'
							// })
						}
					})
			    }else if(res.data.code == 500){
					uni.showToast({title: res.data.message || "请求失败",icon:"none"});
				}else{
					uni.showToast({title: obj.url + "请求异常",icon:"none"});
				}
			}),
			fail: ((err) => {
				uni.hideLoading()
				uni.showToast({title: "服务器异常",icon:"none"});
				reject(err)
			})
		})
	})
}
export default request